﻿Public Class NhomNguoiDung3
    'state : 0 mặc định - trạng thái 1- tạo mới 2 sửa 3 - xóa
    Private state As Integer 'xử lý cho biết đang ở trạng thái nào
    'Load form
    Dim isLoad As Boolean = True 'Xét coi form đã load hay chưa
    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
        If keyData = (Keys.Control Or Keys.N) Then
            Return getTaoMoi()
        End If
        If keyData = (Keys.Control Or Keys.S) Then
            Return getLuu()
        End If
        If keyData = (Keys.Control Or Keys.E) Then
            Return getSua()
        End If
        If keyData = (Keys.Control Or Keys.D) Then
            Return getXoa()
        End If
        If keyData = (Keys.Control Or Keys.P) Then
            'Return Me.getIn()
        End If
        If keyData = (Keys.Control Or Keys.R) Then
            Return Me.getLamTuoi
        End If
        If (keyData = (Keys.Control Or Keys.Q)) Then
            Return getThoat()
        End If
        Return MyBase.ProcessCmdKey(msg, keyData)
    End Function
    Private Sub setReadonly(ByVal isTrue As Boolean)
        Me.NhomnguoidungIUltraGrid_ThongTin.setReadonly(isTrue)
        Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.setReadonly(isTrue)
        Me.NhomnguoidungIUltraGrid_DanhSach.setReadonly(isTrue)
        Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.setReadonly(isTrue)
    End Sub
    Private Sub loadDuLieu()
        If isLoad Then
            Me.NhomnguoidungTableAdapter.Fill(Me.ErpharmaDataSet.nhomnguoidung)
            Me.Nhomnguoidung_menuTableAdapter.Fill(Me.ErpharmaDataSet.nhomnguoidung_menu)
            Me.setReadonly(True)
            isLoad = False ' để load dữ liệu một lần
        End If
    End Sub
    Private Sub loadCauHinh() 'Set cấu hình cho tất cả các Ultragird, Ultracombo, Ultradropdown: set giao diện, set tìm kiếm, xử lý dữ liệu,groupby
        'set đối tượng xử lý dữ liệu
        Me.NhomnguoidungIUltraGrid_DanhSach.setDoiTuongXuLyDuLieu(Me.ErpharmaDataSet.nhomnguoidung, Me.NhomnguoidungBindingSource, Me.NhomnguoidungTableAdapter, Me.ErpharmaDataSet)
        Me.NhomnguoidungIUltraGrid_ThongTin.setDoiTuongXuLyDuLieu(Me.ErpharmaDataSet.nhomnguoidung, Me.NhomnguoidungBindingSource, Me.NhomnguoidungTableAdapter, Me.ErpharmaDataSet)
        Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.setDoiTuongXuLyDuLieu(Me.ErpharmaDataSet.nhomnguoidung_menu, Me.Nhomnguoidung_menuBindingSource, Me.Nhomnguoidung_menuTableAdapter, Me.ErpharmaDataSet)
        Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.setDoiTuongXuLyDuLieu(Me.ErpharmaDataSet.nhomnguoidung_menu, Me.Nhomnguoidung_menuBindingSource, Me.Nhomnguoidung_menuTableAdapter, Me.ErpharmaDataSet)
        'set group by mã để xử lý khi tìm kiếm chi tiết
        Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.setGroupBy("manhomnguoidung")
        'set giao diện
        Me.NhomnguoidungIUltraGrid_DanhSach.setGiaoDienTuyBien()
        Me.NhomnguoidungIUltraGrid_ThongTin.setGiaoDien_Doi_ThongTin()
        Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.setGiaoDienTuyBien()
        Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.setGiaoDienVua()
        Me.NhomnguoidungIUltraGrid_ThongTin.setMoveLast()
        'set tìm kiếm trên cột Ultragrid
        Me.NhomnguoidungIUltraGrid_DanhSach.setTimKiemTrenCotUltraGrid()
        Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.setTimKiemTrenCotUltraGrid()
        Me.NhomnguoidungIUltraGrid_ThongTin.setFocusIUltraGrid("ghichu", Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid)
        'Set Menustrip cho ultragird
        Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.setChoPhepMenuStrip(True, True, True, False, True, False, False, False)
        Me.setReadonly(True)
    End Sub
    Private Sub NhomNguoiDung3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Timer1.Start()
    End Sub
    Private Function getTaoMoi() As Boolean
        If Me.NhomnguoidungIUltraGrid_ThongTin.getTaoMoi() Then
            Me.setReadonly(False)
            Me.state = 1
            Return True
        Else
            Return False

        End If
    End Function
    Private Sub btnTaoMoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTaoMoi.Click
        getTaoMoi()
    End Sub
    Private Function getLuu() As Boolean
        'Lưu cả form Nhomnguoidung và Nhomnguoidung_menu, Mục đích xuất hiện "Có lưu hay không"
        If Me.NhomnguoidungIUltraGrid_ThongTin.getCoThayDoiDuLieuKhong() Then ' Nếu có thay đổi dữ liệu trả về giá trị True
            If Me.NhomnguoidungIUltraGrid_ThongTin.getLuu() Then 'Lưu bảng cha
                Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.getLuuNgam() 'Lưu bảng con
                Me.state = 0 ' sau khi lưu xong trả về trạng thái mặc định
                Me.setReadonly(True)
                Return True
                Exit Function
            End If
        ElseIf Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.getCoThayDoiDuLieuKhong() Then
            If Me.Nhomnguoidung_menu_ThongTinChinh_IUltraGrid.getLuu() Then 'lưu bảng con
                Me.state = 0
                Me.setReadonly(True)
                Return True
                Exit Function
            End If
        End If
        Return False
    End Function

    Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click
        getLuu()
    End Sub
    Private Function getXoa() As Boolean
        If Me.NhomnguoidungIUltraGrid_ThongTin.getXoa() Then
            Me.state = 0
            Return True
        Else
            Return False
        End If
    End Function
    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        getXoa()
    End Sub
    Private Function getLamTuoi() As Boolean
        Try
            Dim position As Integer = Me.NhomnguoidungBindingSource.Position 'Lưu lại vị trí con tró trên Nhomnguoidung để gán đúng vị trí khi load lại
            Me.isLoad = True 'gán bằng true để load lại
            Me.state = 0 'trả về trạng thái 0
            Me.NhomnguoidungBindingSource.Position = position 'vị trí hiện tại
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
    Private Sub btnLamTuoi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLamTuoi.Click
        getLamTuoi()
    End Sub

    Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIn.Click
        'MessageBox.Show(Me.Ketoantienmatchitiet_ThongTinKhaiThue_IUltraGrid.Rows(2).ChildBands(0).Rows.SummaryValues("doanhthu").Value)
    End Sub
    Private Function getThoat() As Boolean
        If Me.getLuu() Then
            Me.Dispose()
            Me.Close()
            Return True
        Else
            Me.Dispose()
            Me.Close()
            Return False
        End If
    End Function
    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        getThoat()
    End Sub
    Private Function getSua() As Boolean
        Try
            Me.setReadonly(False)
            Me.state = 2
        Catch ex As Exception
            Return False
        End Try
        Return True
    End Function
    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        getSua()
    End Sub
    'Chạy processbar phụ thuộc vào đồng hồ
    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.ultraProgressBar1.IncrementValue(10)
        If Me.ultraProgressBar1.Value = Me.ultraProgressBar1.Maximum / 2 Then
            loadDuLieu()
        End If
        If Me.ultraProgressBar1.Value = Me.ultraProgressBar1.Maximum Then
            Me.loadCauHinh()
            Me.state = 0
            Me.Timer1.Stop()
            Me.ultraProgressBar1.Hide()
        End If
    End Sub
    'Xử lý click phần tìm kiếm chi tiết để quay lại các phiếu cha

    Private Sub Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid_ClickCell(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.ClickCellEventArgs) Handles Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.ClickCell
        If Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.ActiveRow.Index <> 1 Then
            Try
                Me.NhomnguoidungBindingSource.Position = Me.NhomnguoidungBindingSource.Find("manhomnguoidung", Me.Nhomnguoidung_menu_ThongTinChinh_TimKiem_IUltraGrid.ActiveRow.Cells("mamenu").Value)
            Catch ex As Exception

            End Try
        End If
    End Sub
End Class